package com.ruoyi.system.mapper;

import java.util.List;
import com.ruoyi.system.domain.SysMessage;
import org.apache.ibatis.annotations.Param;

/**
 * 消息通知Mapper接口
 * 
 * @author ruoyi
 */
public interface SysMessageMapper
{
    /**
     * 查询消息通知
     * 
     * @param messageId 消息通知主键
     * @return 消息通知
     */
    public SysMessage selectSysMessageByMessageId(Long messageId);

    /**
     * 查询消息通知列表
     * 
     * @param sysMessage 消息通知
     * @return 消息通知集合
     */
    public List<SysMessage> selectSysMessageList(SysMessage sysMessage);

    /**
     * 新增消息通知
     * 
     * @param sysMessage 消息通知
     * @return 结果
     */
    public int insertSysMessage(SysMessage sysMessage);

    /**
     * 修改消息通知
     * 
     * @param sysMessage 消息通知
     * @return 结果
     */
    public int updateSysMessage(SysMessage sysMessage);

    /**
     * 删除消息通知
     * 
     * @param messageId 消息通知主键
     * @return 结果
     */
    public int deleteSysMessageByMessageId(Long messageId);

    /**
     * 批量删除消息通知
     * 
     * @param messageIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSysMessageByMessageIds(Long[] messageIds);
    
    /**
     * 查询用户未读消息数量
     * 
     * @param receiverId 接收人ID
     * @param receiverType 接收人类型
     * @return 结果
     */
    public int selectUnreadCount(@Param("receiverId") Long receiverId, @Param("receiverType") String receiverType);
    
    /**
     * 标记消息为已读
     * 
     * @param messageId 消息ID
     * @return 结果
     */
    public int markAsRead(Long messageId);
} 